package com.lry.basic.jvm.asm.demo1;

public class GoodChild {
    public String name;
    public int age;
    public GoodChild(String name, int age) {
        this.name = name;
        this.age = age;
    }


//    L0 0存到局部变量表1号位置
//    ICONST_0
//    ISTORE 1

//    L1 加载1号位，10入栈，比较出循环
//    ILOAD 1
//    BIPUSH 10
//    IF_ICMPGE L2

//    L3 打印一号位
//    GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
//    ILOAD 1
//    INVOKEVIRTUAL java/io/PrintStream.println (I)V

//    L4 一号位自增
//    IINC 1 1
//    GOTO L1

//    L2
//    RETURN

//    L5
//    MAXSTACK = 2
//    MAXLOCALS = 2

    public void testIf(){
        for(int i=0;i<10;i++){
            System.out.println(i);
        }
    }

// TRYCATCHBLOCK L0 L1 L2 java/lang/InterruptedException
//    L0
//    GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
//    LDC "Before Sleep"
//    INVOKEVIRTUAL java/io/PrintStream.println (Ljava/lang/String;)V

//    L3
//    LDC 1000
//    INVOKESTATIC java/lang/Thread.sleep (J)V
//
//    L4
//    GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
//    LDC "After Sleep"
//    INVOKEVIRTUAL java/io/PrintStream.println (Ljava/lang/String;)V
//
//    L1
//    GOTO L5
//
//    L2
//    ASTORE 1
//
//    L6
//    ALOAD 1
//    INVOKEVIRTUAL java/lang/InterruptedException.printStackTrace ()V
//
//    L5
//    RETURN
//
//    L7
//    MAXSTACK = 2
//    MAXLOCALS = 2

    public void testTry(){
        try {
            System.out.println("Before Sleep");
            Thread.sleep(1000);
            System.out.println("After Sleep");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    public void test(boolean flag) {
        if (flag) {
            System.out.println("value is true");
        }
        else {
            System.out.println("value is false");
        }
    }

    public void say(){
        System.out.println("name="+name+" is a good child");
    }


    public static void main(String[] args) {
        GoodChild goodChild = new GoodChild("Lucy",18);
        goodChild.say();
    }
}

